This invention relates to computer systems for processing information received through a network. More particularly, this invention relates to a load balancing device and method to more efficiently process information received by a computer system over a network.
It is known in the art to use load balancing devices to route information between various paths in a computer system. Such load balancing devices have been used in the past to switch or distribute the load or processing of the information being received to different paths. This increases the efficiency of the computer system by more efficiently using the resources of the computer system.
Many prior art load balancing devices route the information to the different paths in a predetermined order. This permits the load to be distributed amongst the various paths, thereby increasing the efficiency of the system.
Furthermore, some prior art load balancing devices route information based on the status of the first layer in the path. For example, some prior art load balancing devices determine whether or not the first layer of a path has malfunctioned and route information away from the path having a malfunctioning first layer. Load balancing devices in the past have also been used to determine whether or not the first layer in a path is busy processing previous information such that it is not presently available to process additional information.
However, the load balancing devices of the prior art suffer from the disadvantage that they are not aware of the status of other servers or devices located along the path but behind the first layer. In other words, load balancing devices of the prior art are limited to routing information based on the status of the first layer in the path, rather than the status or health of other layers in the path. For example, the prior art load balancing devices can determine if a malfunction has occurred with respect to the first layer in the path, but cannot access or determine whether any of the layers behind the first layer have malfunctioned or are busy. One reason prior art devices are limited in this way is that the prior art load balancing devices are generally only connected to the first layer of the path, and therefore can only receive information regarding the status or health of the first layer of the paths, but cannot receive information regarding the other layers of the paths.
The prior art load balancing devices are also limited in that they route information based solely on the status or health of the hardware of the first layer in a path. In other words, the prior art load balancing devices do not determine the status or health of the application being run on the hardware of the first layer in the path, let alone the status of the applications being run on the other layers of the paths.
Accordingly, there is a need in the art for computer systems which can route information to various paths based on the status or health of more than the first layer, and preferably all of the layers, in each of the paths. In addition, there is a need in the art for computer systems which can assess the status or health of all aspects of each of the layers, including the hardware and the applications being run on the hardware, such that a more accurate estimate of the load being placed on each path, and the health of a path, can be made to more efficiently route information to the paths.
Accordingly, it is an object of this invention to at least partially overcome the disadvantages of the prior art. Also, it is an object of this invention to provide an improved device and method for balancing loads between different paths in a computer system based on the status or health of more than just the first layer of the paths.
Accordingly, in one aspect, the present invention provides in a computer system for receiving information from a network, said computer system operable to process said information through at least two paths with at least two layers in one of the paths, a load balancing system for balancing processing of the information on each of the paths of the computer system, said load balancing system comprising: a load balancing device for routing said information to each of the at least two paths; health assessing agents for assessing the health of at least two layers on each path and generating layer health signals indicative of the health of each assessed layer; application information manager for receiving the layer health signals, determining the health of each path based on the health signals, and generating path health signals indicative of the health of each path; and wherein the load balancing device receives the health path signals and routes the information to the path based on the health of the paths.
In another aspect, the present invention provides in a computer system for receiving information from a network, said computer system operable to process said information through at least two paths with at least two layers on one of the paths, a load balancing method for balancing processing of the information on each of the paths of the computer system, said load balancing method comprising the steps of: assessing the health of at least two layers on each path; generating layer health signals indicative of the health of each assessed layer; determining the health of each path based on the layer health signals; generating path health signals indicative of the health of each path; and routing the information to the paths based on the health of the paths.
Accordingly, one advantage of the present invention is that the health of more than just the first layer of the paths, and preferably the health of each layer of each path, is determined such that an accurate representation of the health of each path can then be determined. In this way, information can be routed by the load balancing device based on the health of each of the paths, rather than just the first layer of each of the paths. Clearly, this provides more efficient utilization of the resources of each of the paths, and therefore more efficient processing of the information.
A further advantage of the present invention is that the health of both the hardware component and the application component of each layer can be determined by the health assessing agents. In this way, a more accurate representation of the health of the layer can be determined because the health of both components of the layer, namely the hardware and the application being run on the hardware, are being considered. This also increases the efficiency of the load balancing system and method by more efficiently utilizing the resources of the paths, which resources include both the hardware and the applications being run on the hardware.
A still further advantage of the present invention is that the health of the paths can be determined based on a predetermined algorithm. In this way, the information derived from the layer health signals can be used so as to present a better indication of the health of the path. For example, the algorithm can be a weighted sum of the different layers, giving weights to each health of the layers corresponding to their relative importance. In this way, if a particular layer in a path is more crucial or will require additional processing time to process information, this can be taken into account when determining the health of the path. In addition, the algorithm can include conditions whereby the entire path is shown as malfunctioning when a single component in the path has malfunctioned. This occurs when the entire path cannot operate because one of the layers in the path has malfunctioned. In the alternative, the algorithm can determine if a portion of the path can still be utilized even if one or more of the layers in the path have malfunctioned.
Furthermore, the algorithm can be used to produce a binary path health signal where a path is healthy if the health of the path is above a first threshold value and unhealthy if below a second threshold value. In this way, the value of the path health signal being sent to the load balancing device will not change as often, but only when a threshold value is exceeded.
A further advantage of the present invention is that the load balancing system can be used to add or remove additional paths to which the information can be routed. In this way, the load balancing system can release underutilized resources for other uses, which increases the overall efficiency of the computer system.